The build system for the kernel enables _ALL_ warnings and treats all warnings as errors (at least with 2.6.36.1 this is the case -- This is something that Linus has been pushing for for many years, though I don't know when he started the warnings as errors bit and why you can see many Linus melt downs on LKML if you search for "warning bomb")